![]() グラフィック遠隔化アーキテクチャ
专利摘要:
リモートクライアントにおいて、グラフィック画像をレンダリングするためのグラフィック遠隔化アーキテクチャを実装するシステム及び方法が開示される。一実装において、リモートサーバー上にホストされるD3Dアプリケーションがリモートクライアントによって使用されるとき、D3Dアプリケーションに関連付けられたグラフィックが、リモートクライアントにおいて生成され、レンダリングされる。これに関連し、グラフィックに対応するD3Dコマンド及びD3Dオブジェクトが、リモートサーバーにおいて、データストリームの中に抽象化される。データストリームが、その後、リモートクライアントに送信される。リモートクライアントにおいて、D3Dコマンド及びD3Dオブジェクトが、データストリームから抽出され、実行され、グラフィック画像を生成する。グラフィック画像は、その後、リモートクライアントにおいてレンダリングされ、出力装置を使用し表示される。 公开号:JP2011511367A 申请号:JP2010545038 申请日:2009-01-06 公开日:2011-04-07 发明作者:アブド,ナディム・ワイ;チウ,カン 申请人:マイクロソフト コーポレーション; IPC主号:G06T11-00
专利说明:
[0001] 本発明は、計算システムにおけるグラフィック処理に関し、具体的には、リモート計算環境におけるグラフィック処理に関する。] 背景技術 [0002] [0001]フォト編集、ゲームなどのように高性能グラフィックアプリケーションを生成するためのグラフィックソフトは、複雑な計算を利用する動画及びその他のツールを含み得る。通常、そのような高性能グラフィックアプリケーションは、複雑な計算を管理するためのグラフィックハードウェアの支援を提供する様々な技術を使用する。例えば、Microsoft(登録商標)Windows(登録商標)オペレーティングシステム上で実行されるグラフィックアプリケーションは、グラフィックハードウェアの支援を提供するDirect3Dレンダリング技術を使用し得る。Direct3Dは、グラフィックアプリケーションの中で3D画像をレンダリングするためのコマンドを含んでいる三次元(3D)グラフィック・アプリケーション・プログラミング・インターフェース(API)である。] [0003] [0002] 今やほとんどのパーソナルコンピューター(PC)は、そのようなグラフィックハードウェアの支援を提供しているが、そのような技術を遠隔化する効率的な方法はどこにも存在しない。例えば、リモートセッションにおいて、グラフィックアプリケーションは、ウィンドウサイズもユーザー接続数も率に応じ増やすことができず、安定性問題ももたらし得る。更に、グラフィックス・アクセラレーションは、ビデオ・グラフィックス・アダプター(VGA)を実行するサーバーコンピューターにおいても仮想計算機においても利用され得ない。結果として、リモートセッションを介し実行するグラフィックアプリケーションは、質の悪いエンドユーザー体験をもたらし得る。] 発明が解決しようとする課題 [0004] 本発明の目的は、リモートクライアントにおいて、3Dグラフィック画像のレンダリングを可能にするDirect3D遠隔化アーキテクチャを用いた自己記述型データレンダリングを実装する技法を提供することである。] 課題を解決するための手段 [0005] [0003]この概要は、以下の「発明を実施するための形態」において更に記載されているグラフィック遠隔化アーキテクチャに関連する簡易化した概念を紹介するために提供されている。この概要は、請求対象項目の本質的な特徴を特定することも意図されておらず、請求対象項目の範囲を決定する際に使用することも意図されていない。] [0006] [0004]実施形態において、サーバーコンピューター上にホスティングされる三次元(3D)アプリケーションは、リモートクライアントコンピューターによって使用される。3Dアプリケーションに関連付けられたグラフィックは、リモートサーバーにおいてデータストリームの中に抽象化され、クライアントコンピューターに送信されるグラフィックに対応している3Dコマンド及び3Dオブジェクトの使用によってリモートクライアントコンピューターにおいて生成され、レンダリングされる。3Dコマンド及び3Dオブジェクトがデータストリームから抽出され、実行され、クライアントコンピューターにグラフィック画像を生成する。] [0007] [0005]詳細な説明を添付の図を参照し説明する。図面において参照番号の最上位の桁は、参照番号が最初に出現する図面を識別している。異なる図面における同一の参照番号の使用は、同等又は同一の項目を示している。] 図面の簡単な説明 [0008] [0006]3D遠隔化アーキテクチャを実装するための例示的ネットワーク環境を示すブロック図である。 [0007]3D画像のリモートレンダリングを実装するための例示的計算サーバーを示すブロック図である。 [0008]3D画像のリモートレンダリングを実装するための例示的クライアントを示すブロック図である。 [0009]3D遠隔化アーキテクチャの例示的実装を示すブロック図である。 [0010]3Dグラフィックアプリケーション中のコマンドを抽象化するための例示的プロセスを示す流れ図である。 [0011]3D画像をレンダリングするための例示的プロセスを示す流れ図である。] [0009] [0012]この開示は、リモートに位置するクライアントにおいて三次元又は3D画像のレンダリングを容易にし、リモートセッションにおいて、改善されたエンドユーザー体験を達成するための遠隔化アーキテクチャを実装する方法及びシステムに関連する。通常、Terminal Service(登録商標)環境のようなリモート環境において、Direct3D又はD3Dコマンドのような任意のグラフィックに集中したアプリケーションコマンドは、サーバーで実行される。コマンド実行後、グラフィック画像などの出力は、サーバーのグラフィックス・プロセッシング・ユニット(GPU)の支援を用いてレンダリングされる。レンダリングされたグラフィック画像は、その後、ビットマップ画像としてクライアント装置に送信され、クライアントサイドにおいて、表示装置を介し表示される。そのような方法にて実行するDirect3D又は三次元アプリケーションは、サーバーの利用可能性、拡張性、サーバー安定性などアーキテクチャ上の要因によって制限され、質の悪いエンドユーザー体験をもたらす。具体的には、圧縮及びその他の特殊方法を使用しているとき、アーキテクチャ上の欠点は、フレームレート制御の欠如及び斬新的なテクスチャレンダリングの不適当性を含み得る。] [0010] [0013]リモートクライアントにおいて3Dグラフィック画像のレンダリングを可能にするためのDirect3D遠隔化アーキテクチャを実装する技法が、以下の説明に開示される。一実装において、サーバーコンピューターにおいてグラフィック画像をレンダリングする代わりにその後、最終的なビットマップ画像をクライアント装置に送信する。D3Dコマンドがその後、D3Dコマンドを実行し得るクライアント装置に直接に送信され得る。クライアント端末装置のGPUが、グラフィック画像などの出力をレンダリングし、クライアント端末に画像を表示する。かくしてグラフィック画像は、サーバー端末のGPUを使用せずに、クライアント装置においてレンダリングされ得る。更に、フレームレート制御及び斬新的なテクスチャレンダリング方法を実装し、前述したアーキテクチャ上の欠点を克服するための技法が開示される。] [0011] [0014]クライアント装置において、3Dグラフィック画像をレンダリングするためのDirect3D遠隔化アーキテクチャを実装する方法及びシステムが、以下の説明に開示される。] [0012] 例示的ネットワーク環境 [0015]図1は、本明細書に記載した技法を実装し、本明細書に記載したエレメントの全体又は一部を代表し得る3D又はDirect3D(D3D)遠隔化アーキテクチャを実装するための例示的ネットワーク又は計算環境(100)を示している。計算環境(100)は、計算環境の例であって、使用されている計算機及びネットワークアーキテクチャの使用範囲及び/又は機能性に対し、どのような制限も示すように意図されていない。] 図1 [0013] [0016]計算環境(100)は、(クライアント(102)としてまとめて参照される)複数のクライアント装置(102−1,102−2,102−3,…,102−N)を含む。クライアント(102)は、ネットワーク(104)を介し、サーバーコンピューター又はサーバー(106)と通信可能に関連付けられる。クライアント(102)は、例えば、デスクトップPC、ノートブックコンピューター、ポータブルコンピューター、個人情報端末(PDA)、ワークステーション、携帯計算装置、又はインターネット接続専用端末など様々な従来の任意の計算装置であり得る。クライアント(102)それぞれは、レンダリング用の異なるプログラムモジュールをストアするメモリーを含む。例えば、クライアント(102−1)は、D3Dプラグイン(112)及びレンダリングを実行するための別のモジュールのような異なるプログラムモジュール(110)をストアし得るメモリー(108)を含む。] [0014] [0017]ネットワーク(104)は、無線ネットワーク若しくは有線ネットワーク又はその組み合わせであり得る。ネットワーク(104)は、お互いに相互接続された個別のネットワークの集まり及び単一の大規模ネットワーク(例えばインターネット又はイントラネット)としての機能性としても代表され得る。そのような個別のネットワークの例は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、及びメトロポリタンエリアネットワーク(MAN)を含むがこれらに限定しない。更に、個別のネットワークは、無線ネットワーク若しくは有線ネットワーク又はその組み合わせでもあり得る。] [0015] [0018]サーバー(106)は、例えば、汎用計算装置、又はサーバークラスター及びメインフレームクラスターであり得る。サーバー(106)は、クライアント(102−1)などのクライアントに対応しているユーザー空間(116)を有するメモリー(114)を含む。ユーザー空間(116)は更に、D3D抽象化モジュール(118)及びリモートアダプター(120)を含む。サーバー(106)のリモートアダプター(120)は、クライアントとの接続を確立し、D3D抽象化モジュール(118)によって抽象化されたレンダリング用グラフィックコマンドを送信する。] [0016] [0019]一実装において、D3D抽象化モジュール(118)が、ターミナル・サーバー(TS)/D3D抽象化レイヤ上で実行する。D3D抽象化レイヤは、サーバー(106)の物理ハードウェアとD3Dアプリケーションのようなグラフィックアプリケーションとの間に実装される。抽象化レイヤは、ハードウェアの実装詳細をそのようなアプリケーションから隠す。] [0017] [0020]D3D抽象化モジュール(118)は、クライアント(102−1)などのクライアントが、リモートセッション中、サーバー(106)のD3Dアプリケーションを使用するとき、D3Dアプリケーションから1つ以上のD3Dコマンド及びD3Dオブジェクトを受信する。D3D抽象化モジュール(118)は更に、D3DアプリケーションとD3Dアプリケーションを実行するグラフィックハードウェアとの間の通信を抽象化する。] [0018] [0021]D3D抽象化モジュール(118)は、ネットワーク(104)上に送信され得るストリーミングデータの中にD3Dコマンド及びD3Dオブジェクトを抽象化する。D3D抽象化モジュール(118)は、かくして、サーバー(106)が、データストリームとして抽象化されたコマンド及びオブジェクトを1つ以上のクライアント(102)に送信可能にする。データストリームは、ネットワーク(104)を介し、リモート・デスクトップ・プロトコル(RDP)、D3D遠隔化プロトコルなどのような異なる遠隔化プロトコルに基づいて送信される。] [0019] [0022]データストリームをサーバー(106)からクライアント(102−1)に送信するために、リモートアダプター(120)が、ネットワーク(104)上のクライアント(102−1)のD3Dプラグイン(112)と通信チャネルを確立する。リモートアダプター(120)は、D3Dプラグイン(112)からクライアント(102−1)のディスプレイアダプターの利用可能性及び機能をチェックする。D3Dプラグイン(112)からの確認を受信すると、リモートアダプター(120)は、D3D抽象化モジュール(118)とD3Dプラグイン(112)との間に通信チャネルを確立する。] [0020] [0023]D3D抽象化モジュール(118)は、クライアント(102−1)においてD3Dアプリケーションに関連付けられた抽象化D3Dコマンド及びD3DオブジェクトをD3Dプラグインに送信する。一実装において、D3D抽象化モジュール(118)は、抽象化されたD3Dコマンド及びD3DオブジェクトをD3Dプラグイン(112)に隠されたデータとして送信する。] [0021] [0024]クライアント端末(すなわちクライアント(102))において、データストリームが、D3Dプラグイン(112)のような1つ以上のD3Dプラグインによって受信され、処理される。D3Dプラグイン(112)は、データストリームを受信し、データストリームを解析し、D3Dコマンドを抽出する。更に、D3Dプラグインは、実際のD3Dオブジェクトを生成し、D3Dコマンドを実行し、クライアント端末におけるGPUを使用しグラフィック画像などの出力をレンダリングする。 例示的サーバー [0025]図2は、3D画像リモートレンダリングを実装するための例示的サーバー(106)である。サーバー(106)は、プロセッサー(202)、ネットワークインターフェース(単数又は複数)(204)、入力/出力インターフェース(単数又は複数)(206)、及びメモリー(114)を含む計算装置であり得る。ネットワークインターフェース(単数又は複数)(204)は、クライアント(102)又はサーバー(106)などの多くの計算装置と相互接続するための1つ以上のポートを含み得る。ネットワークインターフェース(単数又は複数)(204)は、有線ネットワーク(例えばLANネットワーク、ケーブルネットワークなど)並びに無線ネットワーク(例えばWLANネットワーク、セルラーネットワーク、衛星ネットワークなど)を含む様々なネットワーク及びプロトコルタイプを用いた通信を容易にし得る。] 図2 [0022] [0026]入力/出力インターフェース(単数又は複数)(206)は、例えば、スキャナーポート、マウスポート、キーボードポートなどを含んでいて、データをクライアント(102)から受信するか又はそれに送信する。一実装において、サーバー(106)の入力/出力インターフェース(単数又は複数)(206)は、ネットワーク(104)上にD3Dコマンド及びD3Dオブジェクトなどのデータを送信する。サーバー(106)の入力/出力インターフェース(単数又は複数)(206)は、同期化のために、レンダリングされたグラフィック画像を代表とするデータ又はコンテンツなどのデータを1つ以上のクライアント(102)から受信する。] [0023] [0027]メモリー(114)は、ランダムアクセスメモリー(RAM)のような揮発性メモリー、及び/又は読み出し専用メモリー(ROM)、及びフラッシュRAMのような不揮発性メモリー双方の形式の任意の計算機可読媒体であり得る。メモリー(114)は、通常、プロセッサー(202)によってそれに即座にアクセス可能なデータ及び/又はその上で間もなく作動されるプログラムモジュールを含む。] [0024] [0028]一実装において、メモリー(114)は、クライアント(102)それぞれに対応しているユーザー空間(116)及びプログラムデータ(208)を含む。ユーザー空間(116)それぞれは、その他のモジュール(210)に加えてD3D抽象化モジュール(118)及びリモートアダプター(120)を含む。プログラムデータ(208)は、D3Dコマンド(212)、D3Dオブジェクト(214)、データストリーム(216)、及びその他のプログラムデータ(218)を含むパラメータをストアし得る。] [0025] [0029]D3D抽象化モジュール(118)は、D3Dコマンド(212)及びD3Dオブジェクト(214)を含んでいるデータトラフィックを監視するように構成され得る。以下、更に詳細に説明されるように、D3D抽象化モジュール(118)は、D3DアプリケーションからD3DAPIを介しD3Dコマンド(212)及びD3Dオブジェクト(214)と受信するように構成され得る。D3DAPIは、D3Dアプリケーション中の3D画像をレンダリングするために使用され得る機能を含む。別の実装において、D3D抽象化モジュール(118)は、D3DアプリケーションからD3Dコマンド(212)及びD3Dオブジェクト(214)を直接に受信するように構成され得る。] [0026] [0030]一実装において、受信されるD3Dコマンド(212)は、高頻度のコマンドであって、クライアント(102)から1つ以上のネットワークラウンドトリップを必要とする。そのようなネットワークラウンドトリップは、高頻度のコマンド実行時の遅れをもたらす。そのようなネットワークラウンドトリップを回避するために、D3D抽象化モジュール(118)が、抽象化レイヤにおいて、D3Dオブジェクトそれぞれにハンドル又は識別子を割り当てるように構成され得る。D3D抽象化モジュール(118)がその後、クライアント端末上でD3Dオブジェクトを生成するためのハンドルを、別のパラメータと一緒にデータストリーム(216)に記録する。ハンドルは、サーバー(106)のメモリー(114)中の別のプログラムデータ(218)にストアされ得る。] [0027] [0031]D3D抽象化モジュール(118)は、D3Dコマンド(212)及びD3Dオブジェクト(214)をデータストリーム(216)の中に抽象化し、ネットワーク(104)を介しそれらを送信する。これに関連し、リモートアダプター(120)が、クライアント(102−1)のディスプレイアダプターの利用可能性及び機能に関する情報の問い合わせをする。クライアント(102−1)のD3Dプラグイン(112)から利用可能性及び機能の確認を受信すると、リモートアダプター(120)は、D3D抽象化モジュール(118)とD3Dプラグイン(112)との間に通信チャネルを確立する。D3D抽象化モジュール(118)は、通信チャネルを介し、抽象化したD3Dコマンド(212)及びD3Dオブジェクト(214)をクライアント(102−1)のD3Dプラグイン(112)に送信する。] [0028] [0032]抽象化に加えてD3D抽象化モジュール(118)は、リソースの集中型符号化を実行するように構成され得る。リソースの集中型符号化は、当技術分野で周知のD3Dリソースを符号化するために利用可能な圧縮及びデシメーション方法を包含している。これは、複数のアプリケーション及び再接続に対して、サーバー(106)が効率的に帯域幅を使用できるようにする。例えば、D3Dアプリケーションは、テクスチャマッピング、メッシュデータ、又は利用可能な帯域幅よりもサイズがより大きな通常のビットマップ画像などのD3Dリソースを利用し得る。そのような場合、D3D抽象化モジュール(118)は、リソースサイズを低減するための周知の圧縮及び/又はデシメーション方法を使用する。システムの広範囲に渡って持続するキャッシュが実行され、サーバー(106)の帯域幅を効率的に使用するためにリソース符号化プロセスが集中化され得る。 例示的クライアント [0033]図3は、3D画像のリモートレンダリングを実装するための例示的クライアント(102)を示す。例示的クライアント(102)は、任意のクライアント(102)、例えば、クライアント(102−1)であり得、プロセッサー(302)、ネットワークインターフェース(単数又は複数)(304)、入力/出力インターフェース(単数又は複数)(306)、メモリー(108)、及び入力/出力装置(単数又は複数)(310)を含む。ネットワークインターフェース(単数又は複数)(304)は、ネットワーク(104)を介しクライアント(102)間の通信を容易にする。] 図3 [0029] [0034]例示的実装において、ネットワークインターフェース(304)は、クライアント(102−1)をサーバー(106)又はクライアント(102−1)以外のクライアント(102)に接続するための1つ以上のポートを含む。ネットワークインターフェース(単数又は複数)(304)は、有線ネットワーク(例えばLANネットワーク、ケーブルネットワークなど)並びに無線ネットワーク(例えばWLANネットワーク、セルラーネットワーク、衛星ネットワークなど)を含む様々なネットワークタイプ及びプロトコルタイプを用いた通信を容易にし得る。] [0030] [0035]入力/出力インターフェース(単数又は複数)(306)は、例えば、スキャナーポート、マウスポート、キーボードポートなどを含んでいて、データをクライアント(102)から受信するか又はそれに送信し得る。一実装において、クライアント(102−1)の入力/出力インターフェース(単数又は複数)(306)は、例えば、ネットワーク(104)を介しD3Dコマンド(212)及びD3Dオブジェクト(214)などのデータを受信する。] [0031] [0036]クライアント(102−1)の入力/出力インターフェース(単数又は複数)(306)は、同期化のためにレンダリングされるグラフィック画像を代表とするデータ又はコンテンツなどのデータをサーバー(106)に送信する。入力/出力インターフェース(単数又は複数)(306)は、入力/出力装置(310)によってレンダリングされたグラフィック画像などのデータを表示し得る。] [0032] [0037]メモリー(108)は、ランダムアクセスメモリー(RAM)のような揮発性メモリー、及び/又は読み出し専用メモリー(ROM)、及び/又はフラッシュRAMのような不揮発性メモリー双方の形式の任意の計算機可読媒体であり得る。メモリー(108)は、プロセッサー(302)によってそれに即座にアクセス可能なデータ及び/又はその上で作動されるプログラムモジュールを含む。例示的実装において、メモリー(108)は、プログラムモジュール(110)及びプログラムデータ(308)を含む。プログラムモジュール(110)は、D3Dプラグイン(112)及びその他のモジュール(312)を含み得る。プログラムデータ(308)は、データストリーム(314)、グラフィック画像(316)、及びその他のプログラムデータ(318)を含むパラメータをストアし得る。] [0033] [0038]D3Dプラグイン(112)は、D3Dコマンド(212)及びD3Dオブジェクト(214)を含むデータストリーム(314)を受信し、D3Dコマンド(212)を抽出する。更に、D3Dプラグイン(112)は、D3Dコマンド(212)を実行し、クライアント端末のGPUを使用することによって出力グラフィック画像をレンダリングする。一実装において、クライアント(102−1)のD3Dプラグイン(112)が、ネットワーク(104)を介しサーバーからデータストリーム(314)を受信するように構成され得る。D3Dプラグイン(112)は、当技術分野において周知の任意の解析方法を使用しデータストリーム(314)解析し、データストリーム(314)からD3Dコマンド(212)を抽出するように構成され得る。] [0034] [0039]D3Dプラグイン(112)は、データストリーム(314)と一緒に受信したハンドルを使用しD3Dオブジェクト(214)を生成するように構成され得る。前述したように、ハンドルは、D3Dアプリケーションのようなグラフィックアプリケーションに関連付けられたリソースアドレスを含むエントリーを有していて、D3Dオブジェクト(214)などのオブジェクトが識別され、検査され、生成され、及び/又は変更され得る。従ってD3Dオブジェクトは、ハンドルを割り当てられていて、D3Dプラグイン(112)によってクライアント端末において実際のD3Dオブジェクト(214)を生成し得る。D3Dプラグイン(112)が、その後、D3Dコマンド(212)を実行し、クライアントのGPUを使用しグラフィック画像(316)をレンダリングし得る。グラフィック画像(316)のレンダリングは、当技術分野で周知のレンダリング方法によって実行され得る。] [0035] [0040]レンダリングに加えてD3Dプラグイン(112)は、サーバー(106)のデスクトップ上に表示されるウィンドウ形状における変化をトラッキングし、サーバーのデスクトップ表示に従って、クライアント(102−1)において変化するように構成される。ウィンドウ形状の変化は、ウィンドウのリサイズ、ウィンドウの移動若しくは位置、及び/又はサーバー(106)のデスクトップの可視領域の変化を含み得る。] [0036] [0041]ウィンドウ形状の変化を支援するためのプロキシウィンドウが、クライアント(102−1)において使用され得、サーバー(106)のウィンドウにおいて発生する幾何学的変化を再生成する。プロキシウィンドウは、サーバー(106)におけるウィンドウ及びクライアント(102)におけるウィンドウのような、同一セッションにおいて起動された任意のウィンドウとの相互運用性を保証する。プロキシウィンドウは、例えばデスクトップ構成機能が利用できないとき、クライアント(102)において確立され得る。デスクトップ構成は、クライアントのディスプレイ画面上にグラフィック画像の画素が表示される方法を変更する機能であって、サーバー(106)のデスクトップ・ウィンドウ・マネージャーによって制御され得る。] [0037] [0042]D3Dプラグイン(112)は、クライアントサイド(102)、例えばクライアント(102−1)上にDirect3Dグラフィックをフルスクリーン占有モードで提示するようにも構成される。フルスクリーン表示占有モードは、ユーザーから介入をせずに、画面解像度及びピクセルフォーマットを自動的にキャプチャし、設定/リストアする。クライアントウィンドウは、画像を表示するために使用される簡素なウィンドウであり得る。しかしながら、Direct3Dアプリケーションは、簡素なウィンドウフォーマットによって支援され得ないフルスクリーン表示占有モード下で実行する。D3Dプラグイン(112)は、クライアントのウィンドウにフルスクリーン表示を用いたフルスクリーン占有モードのグラフィックを提示し、ユーザー体験を改善する。] [0038] [0043]D3Dプラグイン(112)は、サーバーが同期化するための情報を必要とする場合、レンダリングされたグラフィック画像(316)に関連する情報をサーバー(106)に送信するように構成される。一実装において、D3Dプラグイン(112)は、クライアントサイド専用のレンダリングプロトコルに基づいてクライアント(102−1)のウィンドウに出力グラフィック画像をレンダリングする。そのような場合、レンダリングされたコンテンツが、デフォルトによってクライアント(102)にストアされていて、また、サーバーがコンテンツを必要とする場合、サーバー(106)に送信され得る。従って、D3Dプラグイン(112)は更に、認識済のサーバー(106)の不可視のデスクトップと、サーバー(106)のデスクトップに関するクライアントサイド(102)の可視表示との間のトラッキング及び同期化が可能なように構成され得る。] [0039] [0044]更に、同期化及びコンテンツの一貫性を達成するためにD3Dプラグイン(112)は、サーバー(106)から発行される様々なDirect3Dコマンド(212)と、クライアント(102)のデスクトップに実行される読み出しアクセス/書き込みアクセスと、をトラッキングするように構成され得る。D3Dプラグイン(112)は更に、サーバー(106)及びクライアント(102−1)などのクライアント(102)双方によって送信/受信される画素それぞれに関する更新情報を維持し得る。例えば、デスクトップ構成が利用できないとき同期化するために、画素に関する情報が更新され得る。 例示的アーキテクチャ [0045]図4は、Direct3D(D3D)遠隔化アーキテクチャ(400)の例示的実装を示している。アーキテクチャ(400)は、D3D遠隔化アーキテクチャの論理的ビューであって、リモートセッション内でグラフィック画像をレンダリングするために使用される関連コンポーネントを表示する。アーキテクチャ(400)は、サーバーサイド(402)(例えばサーバー(106))において作動するコンポーネントグループを含み得る。サーバーサイド(402)のコンポーネントは、D3DアプリケーションからD3Dコマンドを受信し、ネットワーク上のクライアントサイド(404)(例えばクライアント(102))に送信されるストリームデータとしてD3Dコマンド及びD3Dオブジェクトを抽象化する。クライアントサイド(404)は、クライアント(102−1)などのクライアント(102)と関係するコンポーネントグループを含む。クライアントサイド(404)のコンポーネントが、データストリームを受信し、D3Dコマンドを抽出し、実際のD3Dオブジェクトを生成し、D3Dコマンドを実行し、クライアント端末において、出力グラフィック画像をレンダリングする。本アーキテクチャ(400)は更に、サーバー(106)又はクライアント(102)によってセッション空間(406)として参照される同一セッション内においてアクセスされるコンポーネントと、サーバー(106)又はクライアント(102)によってグローバル空間(408)として参照される別のセッション内においてアクセスされるコンポーネントと、を含む。] 図4 [0040] [0046]一実装において、サーバーサイド(402)のD3Dアプリケーション(410)が、ユーザーからの入力として1つ以上のD3Dコマンド(212)を受信する。D3Dアプリケーション(410)は、ゲームアプリケーションのような複雑な計算を含む高性能グラフィックアプリケーションであり得る。そのようなアプリケーションに対しD3Dコマンド(212)及びD3Dオブジェクト(214)は、Terminal Server(登録商標)TS/D3D抽象化レイヤ(412)においてデータストリーム(216)として抽象化される。一実装において、D3D抽象化モジュール(118)が、Terminal Server(登録商標)TS/D3D抽象化レイヤ(412)上でオブジェクトを抽象化するためのコマンドを実行する。更に、D3D抽象化モジュール(118)が1つ以上のD3Dオブジェクト(214)にハンドルを割り当て、実際のD3Dオブジェクト(214)がクライアント端末において、ハンドルを使用し生成され得る。] [0041] [0047]D3Dコマンド(212)及びD3Dオブジェクトの抽象化に関し、D3D抽象化モジュール(118)は、D3DAPI(414)と通信するが、場合によってGPUが利用可能である場合、アプリケーションは、サービスサイドにGPU(すなわちローカルGPUドライバー(416))を実装し得る。この場合、(又はOSポリシーごとのデフォルトで)GPUドライバー(416)が、サーバー(106)にローカルに存在し得、Win32kプロセス(418)と通信し得る。言い換えると、クライアント(例えばクライアント(102−1)などのクライアント(102))においてリモートGPUを提示しているリモートアダプター(120)は、存在しているローカルGPUドライバー(416)と協力し実行され得るが、ローカルGPUドライバー(416)は、この遠隔化アーキテクチャが機能するように存在し得ない。ローカルGPUドライバー(416)は、遠隔化アーキテクチャが既存のローカルグラフィックアーキテクチャとどのように統合されるか示す。] [0042] [0048]Win32kプロセス(418)は、メモリー、プロセッサー(単数又は複数)、及び入力/出力装置のような計算リソースに対し最小レベルの抽象化を提供するWindows(登録商標)オペレーティングシステムのカーネルプロセスである。Win32kプロセス(418)は、グラフィック関連タスクを実行するグラフィック・デバイス・インターフェース(GDI)のGDIアプリケーション(420)と通信する。GDIアプリケーション(420)は、グラフィックオブジェクトを表示し、モニター及びプリンターなどの出力装置にグラフィックオブジェクトを送信するために使用されるMicrosoft(登録商標)Windows(登録商標)オペレーティングシステムのインターフェースであり得る。GDIアプリケーション(420)は、直線、曲線、及びレンダリングフォントなどを描画するようなグラフィック関連タスクを実行し得る。] [0043] [0049]一実装において、そのようなグラフィック関連タスクを実行するためにGDIアプリケーション(420)は、GDI32プロセス(422)を使用する。GDI32プロセス(422)は、サーバーのWindows(登録商標)オペレーティングシステムのGDIに関する機能を含んでいて、クライアント(102)のディスプレイウィンドウ上に画像を表示するためのオブジェクト及びプロセス情報を生成する。GDI32プロセス(422)は、D3Dアプリケーション(410)に対しD3Dオブジェクト(214)の生成のようなグラフィック関連機能を実行する。] [0044] [0050]D3Dオブジェクト(214)の生成後、D3Dコマンド(212)及びD3Dオブジェクト(214)は、D3Dアプリケーション(410)及びD3DAPI(414)に連絡される。連絡の間、D3D抽象化レイヤ(412)において、D3D抽象化モジュール(118)が、D3Dコマンド(212)及びD3Dオブジェクト(214)をデータストリーム(216)の中に抽象化する。D3D抽象化モジュール(118)は、D3Dオブジェクト(214)のハンドルもデータストリーム(216)の中に抽象化する。] [0045] [0051]D3D抽象化モジュール(118)は、ネットワーク(104)を介し、クライアント(102)にデータストリーム(216)を送信する。これに関連し、リモートアダプター(120)は、クライアント(102−1)などのクライアント(102)のディスプレイアダプターの利用可能性及び機能に関する問い合わせをする。クライアント(102−1)のD3Dプラグイン(112)から確認を受信すると、リモートアダプター(120)は、ネットワーク(104)を介しデータストリーム(216)を送信するための通信チャネルを確立する。] [0046] [0052]クライアントサイド(404)において、D3Dプラグイン(112)が、リモートアダプター(120)によって確立される通信チャネルを介しデータストリーム(314)を受信する。D3Dプラグイン(112)によって受信されるデータストリーム(314)は、D3Dコマンド(212)、D3Dオブジェクト(214)、及び実際のD3Dオブジェクト(214)を再生成するためのハンドルを含む。D3Dプラグイン(112)は、当技術分野で周知の任意の解析方法を使用し、受信したデータストリーム(314)を解析し、D3Dコマンド(212)及びD3Dオブジェクト(214)を抽出する。] [0047] [0053]D3Dプラグイン(112)は、その後、D3Dコマンド(212)を実行し、D3Dアプリケーション(410)に関連付けられたグラフィックを表示する。これに関連し、D3Dプラグイン(112)は、クライアント(102−1)などのクライアント(102)のD3DAPI(424)と通信する。D3DAPI(424)は、D3Dプラグイン(112)とグラフィックハードウェアとの間においてD3Dコマンド(212)及びD3Dオブジェクト(214)を通信し、グラフィックアプリケーションを実行する。D3DAPI(424)は、グラフィックを表示するために使用され得るグラフィック画像をレンダリングするコマンドも含む。] [0048] [0054]D3DAPI(424)は更に、ハンドルを使用した実際のD3Dオブジェクト(214)生成のようなグラフィック関連タスクを実行するために、Win32kプロセス(426)とインタラクションする。Win32kプロセス(426)(Windows(登録商標)オペレーティングシステムのカーネルプロセス)は、サーバー(106)のWin32kプロセス(418)と同様であり得る。実際のD3Dオブジェクト(214)の生成に関しWin32kプロセス(426)は、実際のD3Dオブジェクト(214)を生成するグラフィック・デバイス・インターフェースプロセスのGDI32プロセス(428)とインタラクションする。] [0049] [0055]実際のD3Dオブジェクト(214)の生成後、クライアントサイド(404)のGDI32プロセス(428)は、D3DAPI(424)を介しD3Dプラグイン(112)にD3Dオブジェクト(214)を連絡する。更に、D3Dプラグイン(112)は、D3Dオブジェクト(214)を使用し、D3Dコマンド(212)を実行し、グラフィック画像(316)をレンダリングする。D3Dプラグイン(112)は、GPUドライバーと同様にグラフィック画像(316)をレンダリングする。レンダリングされたグラフィック画像(316)は、その後、クライアント(102−1)の入力/出力装置(310)を介し表示される。実装において、クライアント(102)それぞれは、リモートターミナルサーバークライアント(430)であり得る。クライアント(102)のD3Dプラグインは、クライアント(102)が切断され、後で再接続しようとするときも、レンダリングプロセス中のセッションにおいてD3Dオブジェクト(214)を持続し得る。再接続の成功後、サーバー(106)及びクライアント(102)は、D3Dアプリケーション(410)の実行を再開する。] [0050] [0056]実装において、D3Dアプリケーション(410)のグラフィック表示は、1つ以上のクライアント(102)によって共有され得るテクスチャマッピング、ノーマルマッピングなどのような1つ以上のD3Dリソースを使用することを含む。リソースを共用するためにD3Dプラグイン(112)は、D3Dリソースそれぞれにハンドル又は識別子を割り当てるように構成され得るが、ハンドルの使用は、1つ以上のクライアント(102)からのネットワークラウンドトリップを必要とする。絶え間のないネットワークラウンドトリップを回避するために、集中型サーバーコンポーネントは、クライアント(102)に割り当てられたプロキシとして使用されるハンドルを提供する。例えば、RDPDD(Remote Desktop Protocol Device Driver)(432)又はRDPWD(Remote Desktop Protocol Win32k Driver)(434)がそれぞれ、クライアント(102)に対するプロキシとしてセッション空間(406)又はグローバル空間(408)において使用され得る。] [0051] [0057]更に、進歩的なテクスチャレンダリング方法、フレームレート制御方法及び自動再接続方法のような1つ以上の方法が、D3D遠隔化アーキテクチャにおいて実装され得る。一実装において、D3Dアプリケーション(410)は、より良いエンドユーザー体験を達成するために、より多くのネットワーク回線容量を消費するメッシュ及びテクスチャなどのD3Dリソースも処理する。そのような場合、進歩的なテクスチャレンダリング方法が効率的に帯域幅を割り当て、より良いエンドユーザー体験を達成するように構成され得る。] [0052] [0058]更に、D3D抽象化モジュール(118)が、D3Dアプリケーション(410)のタイプに基づいてフレーム転送レートを制限することによって、サーバー(106)は帯域幅消費を規制可能なフレームレート制御方法を使用し得る。そのようなフレームレート制御方法は、複数の接続並びにアプリケーション間の拡張性及び一貫性を改善し得る。] [0053] [0059]加えてD3Dアプリケーション(410)からシームレスなリモート自動再接続体験を提供する自動再接続方法が実装され得る。例えば、クライアント(102)がD3Dアプリケーション(410)の実行中に切断されたとき、実行中のD3Dアプリケーション(410)を支援可能な新しいクライアントが接続され得る。一実装において、新しいクライアントの再接続中、D3Dアプリケーション(410)は、DEVICE_LOST又はDEVICE_REMOVEDなどのメッセージを受信する。D3D抽象化モジュール(118)は、その後、D3Dアプリケーション(410)を切断前のステータスにリストアし、D3Dアプリケーション(410)実行をレジュームする。別の実装において、新しいクライアントに再接続中、D3D抽象化モジュール(118)は、サーバーサイド(402)において、オブジェクトコンテンツを再生成するために必要とされるD3Dコマンド(212)及びD3Dオブジェクトの完全な抽象化を実行する。] [0054] [0060]サーバー(106)は、切断セッション中、無限数のD3Dコマンド(212)を蓄積しないことを保証するための更なる方法が使用され得る。本実装において、サーバー(106)において、無限数のD3Dコマンド(212)を回避するために、D3Dアプリケーション(410)を呼び出す1つ以上のカーネルのスレッドが遮断され得る。 例示的プロセス [0061]Direct3D遠隔化アーキテクチャを実装する例示的方法を以下に説明する。これらの方法のいくつか又はすべては必要でないが、図1〜4に示されるようなアーキテクチャの少なくとも一部は実装され得る。また、本方法のいくつかの動作は、説明した順番で実行される必要性はなく、状況によって変更され、及び/又は完全に省略されることを理解されたい。] 図1 図2 図3 図4 [0055] [0062]図5は、サーバー端末におけるD3Dグラフィックアプリケーション中の抽象化コマンドに関する例示的プロセス(500)を示している。例示的プロセス(500)が説明される順番は、制限として理解されるように意図されておらず、説明したどのような方法のブロックも本方法又は代替方法を実装するために順不同に接続され得る。更に、個々のブロックは、本明細書に記載した対象項目の趣旨及び範囲から逸脱せずに本方法から削除され得る。更に、本方法は、適切な任意のハードウェア、ソフトウェア、ファームウェア、又はその組み合わせで実装され得る。] 図5 [0056] [0063]ブロック(502)において、1つ以上のグラフィックアプリケーションコマンドが識別され、グラフィックアプリケーションから受信され得る。D3D抽象化モジュール(118)は、D3D抽象化レイヤ(412)においてグラフィックアプリケーションコマンドを監視していて、D3Dアプリケーション(410)から受信し得る。] [0057] [0064]ブロック(504)において、アプリケーションコマンドが、APIを介しグラフィックハードウェアドライバーに連絡される。D3D抽象化モジュール(118)は、D3DAPI(414)を介し、受信したコマンド(212)をグラフィックハードウェアドライバーに連絡し得る。] [0058] [0065]ブロック(506)において、グラフィックハードウェアドライバーによって生成されたアプリケーションコマンド及びオブジェクトが、データストリームの中に抽象化される。D3D抽象化モジュール(118)が、生成されたD3Dコマンド(212)及びD3Dオブジェクト(214)をデータストリーム(216)の中に隠されたデータとして抽象化し得、それらがネットワーク(104)上に送信される。更に、D3D抽象化モジュール(118)が、1つ以上のD3Dオブジェクトにハンドル又は識別子を割り当てる。D3D抽象化モジュール(118)は、クライアント(102−1)においてD3Dオブジェクト(214)を生成するために使用され得るハンドルを別のパラメータと一緒にデータストリーム(216)の中に記録する。] [0059] [0066]ブロック(508)において、データストリームが、クライアントにネットワークを介し送信される。D3D抽象化モジュール(118)は、1つ以上のクライアント(102)、例えばクライアント(102−1)にデータストリーム(216)を送信し得る。データストリーム(216)がその後、クライアント(102−1)のD3Dプラグイン(112)によって、データストリーム(314)として受信される。] [0060] [0067]一実装において、データストリーム(216)中のD3Dコマンド(212)及びD3Dオブジェクト(214)は、当技術分野で周知の任意の圧縮及びデシメーション方法を使用し圧縮され得る。例えば、D3Dリソースが、テクスチャ、メッシュデータなどのようにサイズが大きく、ネットワーク(104)の帯域幅に適合することが不可能な場合、そのような技法が使用され得る。圧縮されたD3Dリソースは、その後、リモートアダプター(120)を介しネットワーク(104)上に送信され得る。] [0061] [0068]リモートアダプター(120)は、D3D抽象化モジュール(118)をクライアント(102−1)のD3Dプラグイン(112)と通信可能にする。これに関連し、リモートアダプター(120)は、クライアント(102−1)のディスプレイアダプターの利用可能性及び機能ステータスをチェックする。確認がD3Dプラグイン(112)から一旦、受信されると、リモートアダプター(120)は、D3D抽象化レイヤ(412)とD3Dプラグイン(112)との間に通信チャネルを確立する。D3D抽象化モジュール(118)は、確立した通信チャネルを介し、ネットワーク(108)上のクライアント(102)にデータストリーム(216)を送信する。] [0062] [0069]図6は、3D画像をレンダリングするための例示的プロセスを示す。例示的プロセス(600)が説明されている順番は、制限として理解されるように意図されておらず、本方法又は代替方法を実装するために説明した方法のブロックがどれでも順不同に接続され得る。更に、個々のブロックは、本明細書に記載した対象項目の趣旨及び範囲から逸脱せずに本方法から削除され得る。更に、本方法は、適切な任意のハードウェア、ソフトウェア、ファームウェア、又はその組み合わせにて実装され得る。] 図6 [0063] [0070]ブロック(602)において、データストリームがサーバーから受信される。クライアント(102−1)のD3Dプラグイン(112)が、サーバー(106)のD3D抽象化モジュール(118)からデータストリーム(314)を受信する。] [0064] [0071]ブロック(604)において、D3Dコマンド及びD3Dオブジェクトが、データストリームから抽出される。D3Dプラグイン(112)が、データストリーム(314)からD3Dコマンド(212)及びD3Dオブジェクト(214)を抽出し得る。更に、D3Dプラグイン(112)は、クライアント(102−1)のGPUの支援を用いてD3Dコマンド(212)を実行し得る。] [0065] [0072]ブロック(606)において、グラフィック画像形式の出力は、クライアントにおける入力/出力装置を介しレンダリングされる。3Dグラフィック画像(316)のようなD3Dアプリケーション(410)の出力は、当技術分野で周知の任意のレンダリングアルゴリズムを使用し、クライアント(102−1)の入力/出力装置(310)を介し、レンダリングされ得る。] [0066] [0073]前述した任意の方法に関する動作のいくつかはプロセッサー又はその他の計算装置によって、1つ以上の計算機可読媒体上にストアされている命令に基づいて実装される。計算機可読媒体は、リソースモデリングアプリケーションによって利用可能なローカル又はリモートにアクセスされ得る任意の媒体であり得る。非限定の例として計算機可読媒体は、計算機記憶媒体及び通信媒体を含む。計算機記憶媒体は、計算機読込可能命令、データ構造、プログラムモジュール、又はその他のデータなどの情報記憶に関する任意の方法若しくは技術で実装された揮発性及び不揮発性並びに取り外し可能及び取り外し不可能媒体を含む。計算機記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリー、若しくはその他のメモリー技術、CD−ROM、デジタル多用途ディスク(DVD)、若しくはその他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、若しくはその他の磁気記憶装置、又は所望した情報をストアするために使用され、アプリケーションをモデル化するリソースによってアクセスされ得る別の任意の媒体、を含むがこれらに限定しない。通信媒体は、通常、任意の情報伝達媒体に対する計算機可読命令、データ構造、プログラムモジュール、又はその他のデータを具体化する。いくつかの上記の組み合わせも計算機可読媒体の範囲内に含まなくてはならない。] 実施例 [0067] 結論 [0074]本発明は、自己記述型データレンダリングを実装するための構造的特徴及び/又は方法論の動作に対し特定の言語で説明しているが、本発明が必ずしも説明した特定の特徴又は動作に限定されるわけではないことが理解されよう。むしろ、特定の特徴及び動作は、本発明を実装する例示的形式として開示されている。] [0068] 100 例示的ネットワーク計算環境 102クライアント 102−1 クライアント 102−2 クライアント 102−3 クライアント 102−N クライアント 104 ネットワーク 106サーバー 108メモリー 110プログラムモジュール 112 D3Dプラグイン 114 メモリー 116ユーザー空間 118 D3D抽象化モジュール 120リモートアダプター 202プロセッサー 204ネットワークインターフェース 206 入力/出力インターフェース 208プログラムデータ 210 その他のモジュール 212 D3Dコマンド 214 D3Dオブジェクト 216データストリーム 218 その他のプログラムデータ 302 プロセッサー 304 ネットワークインターフェース 306 入力/出力インターフェース 308 プログラムデータ 310 入力/出力装置 312 その他のモジュール 314 データストリーム 316グラフィック画像 318 その他のプログラムデータ 400遠隔化アーキテクチャ 402 サーバーサイド 404クライアントサイド 406セッション空間 408グローバル空間 410 D3Dアプリケーション 412 D3D抽象化レイヤ 414 D3Dアプリケーションプログラミングインターフェース 416ローカルGPUドライバー 418 Win32kプロセス 420GDIアプリケーション 422 GDI32プロセス 424 D3Dアプリケーションプログラミングインターフェース 426 Win32kプロセス 428 GDI32プロセス 430リモートターミナルサーバークライアント 432 RDPDD(リモート・デスクトップ・プロトコル・デバイス・ドライバー) 434 RDPWD(リモート・デスクトップ・プロトコル・Win32k・ドライバー)]
权利要求:
請求項1 メモリーと、前記メモリーと作動可能に接続されるプロセッサーと、1つ以上のクライアントに対応している前記メモリー中のユーザー空間であって、前記ユーザー空間が、三次元(3D)コマンド及び3Dオブジェクトを含んでいるデータトラフィックを監視するための抽象化モジュールを含んでいるものと、を含むサーバーコンピューター。 請求項2 前記メモリーが、前記3Dコマンド、前記3Dオブジェクト及びデータストリームをストアしているプログラムデータを含むことを特徴とする請求項1記載のサーバーコンピューター。 請求項3 前記ユーザー空間が、クライアント装置における、ディスプレイアダプターの利用可能性及び機能に関する問い合わせをするリモートアダプターを含むことを特徴とする請求項1記載のサーバーコンピューター。 請求項4 前記リモートアダプターが、前記抽象化モジュールと前記クライアント装置のプラグインとの間に通信チャネルを確立し、前記プラグインが、コマンド及び3Dオブジェクトを受信することと、を特徴とする請求項3記載のサーバーコンピューター。 請求項5 前記抽象化モジュールが、3Dアプリケーション中で3D画像をレンダリングする機能を含むアプリケーション・プログラム・インターフェース(API)を介し、前記3Dアプリケーションから前記3Dコマンド及び3Dオブジェクトを受信するように構成されることを特徴とする請求項1記載のサーバーコンピューター。 請求項6 前記抽象化モジュールが、前記3Dオブジェクトに識別子を割り当てることを特徴とする請求項1記載のサーバーコンピューター。 請求項7 前記抽象化モジュールが、前記3Dコマンド及び3Dオブジェクトをデータストリームの中に抽象化し、前記データストリームを前記1つ以上のクライアントに送信することを特徴とする請求項1記載のサーバーコンピューター。 請求項8 前記抽象化モジュールが、圧縮及びデシメーションによる集中型符号化を実行することを特徴とする請求項1記載のサーバーコンピューター。 請求項9 前記3Dコマンドが、高頻度のコマンドであることを特徴とする請求項1記載のサーバーコンピューター。 請求項10 メモリーと、前記メモリーと作動可能に接続されるプロセッサーと、3Dコマンド及び3Dオブジェクトをインクルードしたデータストリームを受信し、前記3Dコマンドを抽出する受信側メモリー中の3Dプラグインと、前記抽出した3Dコマンドをレンダリングするグラフィック・プロセッシング・ユニット(GPU)と、を含むクライアントコンピューター。 請求項11 前記3Dプラグインが、前記データストリームを解析し、3Dコマンドを抽出することを特徴とする請求項10記載のクライアントコンピューター。 請求項12 前記3Dプラグインが、前記データストリーム中の前記3Dオブジェクトに関連付けられたハンドルを識別することによって3Dオブジェクトを生成することを特徴とする請求項10記載のクライアントコンピューター。 請求項13 前記ハンドルが、グラフィックアプリケーションに関連付けられたリソースのアドレスを含んでいるエントリーを含むことを特徴とする請求項12記載のクライアントコンピューター。 請求項14 前記3Dプラグインが、3Dグラフィックをフルスクリーンのユーザーインタフェースに提示することを特徴とする請求項10記載のクライアントコンピューター。 請求項15 前記3Dプラグインが、同期化情報をサーバーに送信することを特徴とする請求項10記載のクライアントコンピューター。 請求項16 前記3Dプラグインが、クライアントサイド専用のレンダリングプロトコルに基づいて出力グラフィックをレンダリングすることを特徴とする請求項10記載のクライアントコンピューター。 請求項17 前記GPUが、前記データストリームを送信するサーバーコンピューターのウィンドウに生じる幾何学的変化を生成するためのプロキシウィンドウを生成することを特徴とする請求項10記載のクライアントコンピューター。 請求項18 計算機実行可能媒体上に実装される方法であって、グラフィックアプリケーションコマンドから受信し、識別するステップと、前記グラフィックアプリケーションコマンドをグラフィックドライバーに伝達するステップと、前記アプリケーションコマンド及び前記グラフィックドライバーによって生成されたオブジェクトをデータストリームに抽象化するステップと、を含む方法。 請求項19 伝達するステップが、アプリケーションプログラムインターフェースを介することを特徴とする請求項18記載の方法。 請求項20 前記抽象化するステップが、生成されたコマンド及びオブジェクトを隠されたデータとして抽象化するステップ含むことを特徴とする請求項18記載の方法。 請求項21 更に、前記データストリームをネットワーク上の1つ以上のクライアントに送信するステップを含む請求項18記載の方法。 請求項22 更に、前記データストリームを圧縮するステップを含む請求項21記載の方法。
类似技术:
公开号 | 公开日 | 专利标题 US10543426B2|2020-01-28|Gaming system US20170366599A1|2017-12-21|Image display system with visual server US10814227B2|2020-10-27|Game state save, transfer and resume for cloud gaming US20200322422A1|2020-10-08|Methods and systems for use in providing a remote user interface US9619857B2|2017-04-11|Intermediary graphics rendition US20190196858A1|2019-06-27|Delivering a single end user experience to a client from multiple servers KR101692193B1|2017-01-02|크라우드소싱된 비디오 렌더링 시스템 Lamberti et al.2007|A streaming-based solution for remote visualization of 3D graphics on mobile devices US9455931B2|2016-09-27|Load balancing between processors US9940647B2|2018-04-10|Qualified video delivery advertisement US6384821B1|2002-05-07|Method and apparatus for delivering 3D graphics in a networked environment using transparent video US9167020B2|2015-10-20|Web-browser based desktop and application remoting solution KR101159396B1|2012-06-28|그래픽 개체 인코딩 방법, 그래픽 개체 렌더링 방법 및 렌더링 데이터 구조 동기화 방법 US8171169B2|2012-05-01|Method and apparatus for updating a graphical display in a distributed processing environment CN102137151B|2016-12-21|多链路远程协议 US8166107B2|2012-04-24|Measuring client interactive performance using a display channel TWI566160B|2017-01-11|用於多應用程式或程序間動態模擬之協調的電腦儲存媒體、方法及計算裝置 Jeong et al.2006|High-performance dynamic graphics streaming for scalable adaptive graphics environment JP5060489B2|2012-10-31|マルチユーザ端末サービス促進装置 Schmalstieg et al.1996|Demand‐Driven Geometry Transmission for Distributed Virtual Environments US8042094B2|2011-10-18|Architecture for rendering graphics on output devices US6377257B1|2002-04-23|Methods and apparatus for delivering 3D graphics in a networked environment US20130229431A1|2013-09-05|Method and apparatus for updating a graphical display in a distributed processing environment using compression US20170323418A1|2017-11-09|Virtualized gpu in a virtual machine environment US20150150007A1|2015-05-28|Session monitoring of virtual desktops in a virtual machine farm
同族专利:
公开号 | 公开日 KR101527991B1|2015-06-10| EP2248101A4|2017-05-17| RU2493582C2|2013-09-20| US8433747B2|2013-04-30| KR20100114050A|2010-10-22| JP5455930B2|2014-03-26| US20090195537A1|2009-08-06| CN101933041B|2014-01-08| EP2248101A1|2010-11-10| CN101933041A|2010-12-29| EP2248101B1|2018-12-05| BRPI0907240A2|2015-07-14| WO2009099689A1|2009-08-13| RU2010132174A|2012-02-10|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 US5487172A|1974-11-11|1996-01-23|Hyatt; Gilbert P.|Transform processor system having reduced processing bandwith| JP2002505776A|1997-06-13|2002-02-19|アイアンサイドテクノロジーズインコーポレーテッド|性能が強化され、ネットワーク・トラヒックが少ないネットワークを通しての、ソフトウェア構成要素を操作する方法| JPH1166106A|1997-06-30|1999-03-09|Xerox Corp|マルチメディアデータベース及びデータベースからの情報抽出方法| US7162528B1|1998-11-23|2007-01-09|The United States Of America As Represented By The Secretary Of The Navy|Collaborative environment implemented on a distributed computer network and software therefor| US6714200B1|2000-03-06|2004-03-30|Microsoft Corporation|Method and system for efficiently streaming 3D animation across a wide area network| JP2002063601A|2000-08-15|2002-02-28|Kazutoshi Fujikawa|仮想空間システム| JP2002092624A|2000-09-20|2002-03-29|Casio Comput Co Ltd|Information communication system| JP2005011354A|2003-06-19|2005-01-13|Microsoft Corp|通知ボンドを使用してキャッシュオブジェクトを管理するためのシステムおよび方法| JP2007510202A|2003-10-23|2007-04-19|マイクロソフトコーポレーション|合成デスクトップウィンドウマネージャ| JP2005284694A|2004-03-30|2005-10-13|Fujitsu Ltd|3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法| KR20060067248A|2004-12-14|2006-06-19|한국전자통신연구원|사용자 공유를 위한 실사 파노라믹 콘텐츠의 장면저작/콘텐츠 생성 장치 및 그 방법| JP2006236334A|2005-01-28|2006-09-07|Fujitsu Ltd|データ転送システム、データ転送サーバプログラム及びデータ受信プログラム| JP2007004228A|2005-06-21|2007-01-11|Fujitsu Ltd|ウェブアプリケーションシステム,遠隔操作サーバプログラム及び遠隔操作クライアントプログラム| US20070061878A1|2005-09-12|2007-03-15|Microsoft Corporation|Creating secure interactive connections with remote resources|JP2017505078A|2013-11-11|2017-02-09|アマゾン テクノロジーズ インコーポレイテッド|複数のストリーム・コンテンツ提示| US10097596B2|2013-11-11|2018-10-09|Amazon Technologies, Inc.|Multiple stream content presentation| US10257266B2|2013-11-11|2019-04-09|Amazon Technologies, Inc.|Location of actor resources| US10315110B2|2013-11-11|2019-06-11|Amazon Technologies, Inc.|Service for generating graphics object data| US10347013B2|2013-11-11|2019-07-09|Amazon Technologies, Inc.|Session idle optimization for streaming server| US10374928B1|2013-11-11|2019-08-06|Amazon Technologies, Inc.|Efficient bandwidth estimation| US10601885B2|2013-11-11|2020-03-24|Amazon Technologies, Inc.|Adaptive scene complexity based on service quality|US6215898B1|1997-04-15|2001-04-10|Interval Research Corporation|Data processing system and method| US6176883B1|1997-11-24|2001-01-23|International Business Machines Corporation|System and method for generating unsupported network information indicators| US6314452B1|1999-08-31|2001-11-06|Rtimage, Ltd.|System and method for transmitting a digital image over a communication network| US6618053B1|2000-01-10|2003-09-09|Vicarious Visions, Inc.|Asynchronous multilevel texture pipeline| US6882967B2|2000-01-27|2005-04-19|Middle Digital Inc.|Apparatus and method for remote administration of a PC-server| US20020135585A1|2000-02-01|2002-09-26|Dye Thomas A.|Video controller system with screen caching| US6567091B2|2000-02-01|2003-05-20|Interactive Silicon, Inc.|Video controller system with object display lists| US6877027B1|2000-02-19|2005-04-05|Hewlett-Packard Development Company, L.P.|System and method for providing synchronization verification of multiple applications across remote systems| US6828983B1|2000-05-12|2004-12-07|S3 Graphics Co., Ltd.|Selective super-sampling/adaptive anti-aliasing of complex 3D data| JP2003534741A|2000-05-23|2003-11-18|コーニンクレッカフィリップスエレクトロニクスエヌヴィ|Mpeg−4リモートアクセス端末を有する通信システム| US6966837B1|2001-05-10|2005-11-22|Best Robert M|Linked portable and video game systems| RU2282888C2|2001-09-26|2006-08-27|Интерэкт Дивайсиз, Инк.|Система и способ для обмена сигналами аудиовизуальной информации| US7234144B2|2002-01-04|2007-06-19|Microsoft Corporation|Methods and system for managing computational resources of a coprocessor in a computing system| US7081904B2|2002-02-26|2006-07-25|Microsoft Corporation|Methods and apparatuses for identifying remote and local services| AU2003208477A1|2002-03-01|2003-09-16|T5 Labs Ltd|Centralised interactive graphical application server| US6989836B2|2002-04-05|2006-01-24|Sun Microsystems, Inc.|Acceleration of graphics for remote display using redirection of rendering and compression| TW569575B|2002-04-30|2004-01-01|Realtek Semiconductor Corp|Transmission setup method and device for multicast packet| US7149800B2|2002-05-29|2006-12-12|Seventh Knight|Auditing computer systems components in a network| KR20070116925A|2005-03-29|2007-12-11|마이크로소프트 코포레이션|Web page data transmission system and method| JP2005175566A|2003-12-08|2005-06-30|Shinichi Hirabayashi|立体表示システム| AU2005232349B2|2004-04-16|2010-03-25|Etiip Holdings Inc|Method and apparatus for delivering consumer entertainment services accessed over an IP network| US7424482B2|2004-04-26|2008-09-09|Storwize Inc.|Method and system for compression of data for block mode access storage| US7590750B2|2004-09-10|2009-09-15|Microsoft Corporation|Systems and methods for multimedia remoting over terminal server connections| CN101558398B|2005-05-05|2012-11-28|思科埃恩波特系统有限公司|基于被引用资源的概率分析检测不想要的电子邮件消息| US20070005734A1|2005-06-30|2007-01-04|Microsoft Corporation|Generically extensible client application| US7844442B2|2005-08-16|2010-11-30|Exent Technologies, Ltd.|System and method for providing a remote user interface for an application executing on a computing device| US8527563B2|2005-09-12|2013-09-03|Microsoft Corporation|Remoting redirection layer for graphics device interface| US7899864B2|2005-11-01|2011-03-01|Microsoft Corporation|Multi-user terminal services accelerator| US20080082670A1|2006-09-28|2008-04-03|Microsoft Corporation|Resilient communications between clients comprising a cloud| US8433747B2|2008-02-01|2013-04-30|Microsoft Corporation|Graphics remoting architecture| US8144187B2|2008-03-14|2012-03-27|Microsoft Corporation|Multiple video stream capability negotiation|US8433747B2|2008-02-01|2013-04-30|Microsoft Corporation|Graphics remoting architecture| CN102123266A|2010-01-12|2011-07-13|华为终端有限公司|基于网真技术的点对点视频通信方法、编解码器和客户端| WO2012037504A1|2010-09-18|2012-03-22|Ciinow, Inc.|A method and mechanism for delivering applications over a wan| KR101401380B1|2010-11-04|2014-05-30|한국전자통신연구원|원격 렌더링 기반의 3d 응용프로그램 실행 장치 및 그 방법| US9245047B2|2010-12-10|2016-01-26|Wyse Technology L.L.C.|Methods and systems for facilitating a remote desktop session utilizing a remote desktop client common interface| US9395885B1|2010-12-10|2016-07-19|Wyse Technology L.L.C.|Methods and systems for a remote desktop session utilizing HTTP header| US9244912B1|2010-12-10|2016-01-26|Wyse Technology L.L.C.|Methods and systems for facilitating a remote desktop redrawing session utilizing HTML| US9430036B1|2010-12-10|2016-08-30|Wyse Technology L.L.C.|Methods and systems for facilitating accessing and controlling a remote desktop of a remote machine in real time by a windows web browser utilizing HTTP| US8589800B2|2010-12-10|2013-11-19|Wyse Technology Inc.|Methods and systems for accessing and controlling a remote desktop of a remote machine in real time by a web browser at a client device via HTTP API utilizing a transcoding server| US8949726B2|2010-12-10|2015-02-03|Wyse Technology L.L.C.|Methods and systems for conducting a remote desktop session via HTML that supports a 2D canvas and dynamic drawing| US8504654B1|2010-12-10|2013-08-06|Wyse Technology Inc.|Methods and systems for facilitating a remote desktop session utilizing long polling| US9535560B1|2010-12-10|2017-01-03|Wyse Technology L.L.C.|Methods and systems for facilitating a remote desktop session for a web browser and a remote desktop server| US8966376B2|2010-12-10|2015-02-24|Wyse Technology L.L.C.|Methods and systems for remote desktop session redrawing via HTTP headers| CN102592315B|2011-01-12|2015-04-08|赞奇科技发展有限公司|基于gpu云集群的3d渲染平台| CN102857533B|2011-07-01|2015-11-18|云联(北京)信息技术有限公司|一种基于云计算的远程交互式系统| WO2013019517A1|2011-08-02|2013-02-07|Ciinow, Inc.|A method and mechanism for efficiently delivering visual data across a network| US20130093776A1|2011-10-14|2013-04-18|Microsoft Corporation|Delivering a Single End User Experience to a Client from Multiple Servers| US8838749B1|2011-12-30|2014-09-16|hopTo Inc.|Cloud based client computing system for and method of receiving cross-platform remote access to 3D graphics applications| US8769052B1|2011-12-30|2014-07-01|hopTo Inc.|Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications| US8745173B1|2011-12-30|2014-06-03|hopTo Inc.|Client computing system for and method of receiving cross-platform remote access to 3D graphics applications| US8766990B1|2011-12-30|2014-07-01|hopTo Inc.|Server computing system for and method of providing cross-platform remote access to 3D graphics applications| CN103106680B|2013-02-16|2015-05-06|赞奇科技发展有限公司|基于云计算架构的三维图形渲染的实现方法及云服务系统| KR20160012998A|2013-03-15|2016-02-03|비데리 인코포레이티드|디지털 아트 및 이미징의 디스플레이를 위해 이를 복호하는 시스템 및 방법| JP2016523002A|2013-03-15|2016-08-04|ビデリ、インコーポレイテッドVideri Inc.|デジタル・アートを表示、配信、鑑賞および制御し、画像形成するためのシステムおよび方法| US9600940B2|2013-04-08|2017-03-21|Kalloc Studios Asia Limited|Method and systems for processing 3D graphic objects at a content processor after identifying a change of the object| US9645820B2|2013-06-27|2017-05-09|Intel Corporation|Apparatus and method to reserve and permute bits in a mask register| CN103294439B|2013-06-28|2016-03-02|华为技术有限公司|一种图像更新方法、系统及装置| US9183613B2|2013-08-01|2015-11-10|Intel Corporation|Adaptive remote computing| US20150130814A1|2013-11-11|2015-05-14|Amazon Technologies, Inc.|Data collection for multiple view generation| US20150133214A1|2013-11-11|2015-05-14|Amazon Technologies, Inc.|Video encoding based on areas of interest| US9578074B2|2013-11-11|2017-02-21|Amazon Technologies, Inc.|Adaptive content transmission| US20150178032A1|2013-12-19|2015-06-25|Qualcomm Incorporated|Apparatuses and methods for using remote multimedia sink devices| KR102067017B1|2014-01-27|2020-02-11|한국전자통신연구원|매쉬업 서비스를 위한 가상 api 제공 장치 및 방법| CN109682344A|2018-12-12|2019-04-26|上海建工集团股份有限公司|墙体实时监测方法及系统|
法律状态:
2011-11-26| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111125 | 2013-01-16| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130116 | 2013-01-22| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130121 | 2013-04-20| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130419 | 2013-04-30| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130426 | 2013-07-20| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130719 | 2013-08-20| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130819 | 2013-11-19| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131118 | 2013-12-05| TRDD| Decision of grant or rejection written| 2013-12-10| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131209 | 2014-01-16| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140107 | 2014-01-17| R150| Certificate of patent or registration of utility model|Ref document number: 5455930 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 | 2015-04-17| S111| Request for change of ownership or part of ownership|Free format text: JAPANESE INTERMEDIATE CODE: R313113 | 2015-04-27| R350| Written notification of registration of transfer|Free format text: JAPANESE INTERMEDIATE CODE: R350 | 2017-01-10| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2018-01-09| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2019-01-08| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2020-01-07| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2020-12-28| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2021-12-28| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|